#ifndef _SYS_UNSAFE_H_
#define _SYS_UNSAFE_H_

#include "FanObj.h"
#include "SysTypes.h"

#define UNSAFE_VTABLE(self)   ((UnsafeVTable*)((FanObj*)self)->vtable)


extern Type*    Unsafe_classType;
extern VTable*  Unsafe_classVTable;


/* [sys::Unsafe] Attributes */
struct Unsafe
{
  FanObj        super;
};


/* [sys::Unsafe] Virtual-table */
typedef struct UnsafeVTable
{
  FanObjVTable  super;
} UnsafeVTable;


/* [sys::Unsafe] Methods and fields */
void            Unsafe_make(Unsafe* self, NullableObj val);
NullableObj     Unsafe_val(Unsafe* self);


/* [sys::Unsafe] Type-system functions */
Type*           Unsafe_initType(void);
VTable*         Unsafe_initVTable(void);
void            Unsafe_initStatic(void);


#endif
